package com.zmn.mcc.permit.client.model;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 拦截决策对象 （是否拦截方法和拦截后要返回的自定义返回值）
 *
 * @author hankangshuai
 * @since 2020/06/18
 */
@Getter
@AllArgsConstructor
public class InterceptDecisionBO {

    /**
     * 是否拦截方法
     */
    Boolean needIntercept;

    /**
     * 目标方法返回值（拦截为真时使用）
     */
    Object returnObject;

    public static InterceptDecisionBO doIntercept(Object returnObject) {
        return new InterceptDecisionBO(Boolean.TRUE, returnObject);
    }

    public static InterceptDecisionBO doNotIntercept() {
        return new InterceptDecisionBO(Boolean.FALSE, null);
    }
}
